Personal digital devices are used in many different situations. For example, a person can carry a cellular telephone or smartphone that by wireless connection provides access to network services and other resources in a wide geographic area. Such devices are sometimes used in business and sometimes for personal purposes. For example, sales agents or other traveling company representatives can be provided with a smartphones that synchronize with the company's computer system.
Software can be designed for one or more kinds of mobile devices. A company can use a specialized software client on the cell phone that connects with the main computer system. For example, SAP AG offers NetWeaver® Mobile and ITSmobile client applications compatible with its SAP's solutions.
Portable digital devices make use of special devices to perform their functions, For example, a cell phone is equipped with a speaker, a display and a microphone that are controlled by the processor inside the phone. Some phones also have cameras. Specific mobile devices can have highly specialized peripheral components, for example a fingerprint reader, an RFID reader, a barcode scanner, or a printer.
When mobile devices are manufactured, the peripheral devices to be integrated in the device are often obtained from third-party vendors. Moreover, such devices often are configured to use a device-specific communication protocol, and a special driver library is created for the mobile device. However, in a mobile device intended for use with several different client applications, the device functionality as exposed to applications in the mobile device is not optimized for any of the mobile applications. Rather, the device vendor often provides a software development kit (SDK) for use in integrating the device functionality in the mobile application.
Such integration generally cannot be made by the mobile device vendor, because they lack sufficient detail knowledge about the mobile application. Also, in situations where the mobile client is created by an enterprise resource planning (ERP) solutions vendor, for example SAP, such a vendor is not directly involved in selecting or designing the third-party peripheral device, and so has less ability and incentive to customize the device using the SDK. As a result, a third party consultant is often engaged to integrate the peripheral device functionality in the mobile application. This can lead to a slower or more complicated implementation process, and it can increase the overall cost for the implementation.
As another example, with such an integration the peripheral device becomes very tightly bound to the mobile application; the device functionality is compiled together with the mobile application. This means that when a mobile application that is designed for one mobile hardware platform should be extended to another platform, not only must the mobile application essentially be coded again, but so must the integration of the peripheral because it is so closely connected with the mobile application.